pub mod trait_impl_test {
    #[derive(Debug)]
    pub enum job {
        worker,
        businessman,
        firefighter,
    }
    #[derive(Debug)]
    pub struct Person {
        pub id: u64,
        pub name: String,
        pub age: u16,
        pub job: job
    }
    trait do_job {
        fn do_job(self) -> job;
    }
    impl do_job for Person {
        fn do_job(self) -> job {
            println!("{:?}", job::worker);
            return job::worker;
        }
    }
}